import axios from 'axios';
import ElementPlus from 'element-plus'
import { ElMessage } from 'element-plus'
import 'element-plus/dist/index.css'

// 创建 axios 实例
const http = axios.create({
    // 从 .env 文件获取基础 URL
    baseURL: process.env.VUE_APP_BASE_URL,
    // 设置请求超时时间
    timeout: 10000,
});

console.log('baseurl', process.env.VUE_APP_BASE_URL)
// 请求拦截器
http.interceptors.request.use(
    config => {
        // 尝试从 localStorage 获取 token
        const token = localStorage.getItem('access_token');
        // 如果 token 存在，将其添加到请求头中
        if (token) {
            config.headers['Authorization'] = 'Bearer ' + token;
        }
        return config;
    },
    error => {
        // 请求错误处理
        return Promise.reject(error);
    }
);

// 响应拦截器
http.interceptors.response.use(
    response => {
        // 直接返回响应数据
        return response.data;
    },
    error => {
        // 响应错误处理
        // 这里可以添加一些错误处理逻辑，例如跳转登录页、显示错误信息等
        console.log('error', error)
        if (error.response.status == 403 && error.response.data.code == '1000') {
            ElMessage({
                message: '登录过期，请重新登录',
                type: 'error',
                duration: 1.5 * 1000
            })
            localStorage.removeItem('token');
            setTimeout(() => {
                window.location.href = '/';
            }, 1500);
        } else {
            ElMessage({
                message: error.response.data.message || '请求失败',
                type: 'error',
                duration: 1.5 * 1000
            })
        }
        return Promise.reject(error);
    }
);
export default http;